using System;
using Cos.Core.Model.Security;

namespace Cos.Core.NHibernate
{
    public class AdminUserDataModel : DataModelBase<User>
    {
        #region Constructors and Destructors

        public AdminUserDataModel() {}

        #endregion

        #region Properties

        public virtual int AccountId { get; set; }

        public virtual string CultureCode { get; set; }

        // Note: NavId is currently not a foreignKey, The table design should be reconsidered
        public virtual int? NavId { get; set; }

        public virtual int RoleReferenceId { get; set; }

        public virtual string UserEmail { get; set; }

        public virtual string UserFirstName { get; set; }

        public virtual int Id { get; set; }

        public virtual string UserLastName { get; set; }

        public virtual string UserPwd { get; set; }

        #endregion

        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return false;
            }

            var model = obj as AdminUserDataModel;

            return model != null && this.Id == model.Id;
        }

        public override int GetHashCode()
        {
            return this.Id.GetHashCode();
        }

        public override void Fill(User model)
        {
            throw new NotImplementedException();
        }

        public override User ToModel()
        {
            throw new NotImplementedException();
        }
        
    }
}